home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-01 / strlib.zip / STRNLEN.C < prev    next >
Text File  |  1993-01-04  |  768b  |  40 lines

  1.  
  2. /*  File   : strnlen.c
  3.     Author : Richard A. O'Keefe.
  4.     Updated: 10 April 1984
  5.     Defines: strnlen()
  6.  
  7.     strnlen(src, len)
  8.     returns the number of characters up to the first NUL in src, or len,
  9.     whichever is smaller.  This is the same as strnend(src,len)-src.
  10.  
  11.     Beware: the VaxAsm version only works for 0 <= len < 65535.
  12. */
  13.  
  14. #include "strings.h"
  15.  
  16. #if     VaxAsm
  17.  
  18. int strnlen(src, len)
  19.     char *src;
  20.     int len;
  21.     {
  22.         asm("locc $0,8(ap),*4(ap)");
  23.         asm("subl3 4(ap),r1,r0");
  24.     }
  25.  
  26. #else  ~VaxAsm
  27.  
  28. int strnlen(s, n)
  29.     register char *s;
  30.     register int n;
  31.     {
  32.         register int L;
  33.  
  34.         for (L = 0; --n >= 0 && *s++; L++) ;
  35.         return L;
  36.     }
  37.  
  38. #endif  VaxAsm
  39.  
  40.